package org.jeecg.modules.tplus.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 *  往来单位
 *
 * @author hzq
 */
@Data
public class PartnerQueryRepDto {
    /**
     * 往来单位编码
     */
    @JsonProperty(value = "ID")
    private String id;


    /**
     * 往来单位编码
     */
    @JsonProperty(value = "Code")
    private String code;

    /**
     * 客户或是供应商的名称
     */
    @JsonProperty(value = "Name")
    private String name;

    /**
     * 客户编码
     */
    @JsonProperty(value = "Shorthand")
    private String shortHand;

    /**
     * 客户简称
     */
    @JsonProperty(value = "PartnerAbbName")
    private String partnerAbbName;

    /**
     * 结算客户
     */
    @JsonProperty(value = "SettlementPartner")
    private SettlementPartner settlementPartner;

    /**
     * 客户等级
     */
    @JsonProperty(value = "priuserdefnvc1")
    private String priuserdefnvc1;

    /**
     * 国家地区
     */
    @JsonProperty(value = "priuserdefnvc3")
    private String priuserdefnvc3;

    /**
     * 动态属性，包括自定义项和自由项
     */
    @Schema(description = "动态属性，包括自定义项和自由项")
    @JsonProperty(value = "DynamicPropertyKeys")
    private Object[] dynamicPropertyKeys;


    /**
     * 动态属性的值，对应DynamicPropertyKeys
     */
    @Schema(description = "动态属性的值，对应DynamicPropertyKeys")
    @JsonProperty(value = "DynamicPropertyValues")
    private Object[] dynamicPropertyValues;

    /**
     * 往来单位分类
     */
    @JsonProperty(value = "PartnerClass")
    private PartnerClass partnerClass;

    @Getter
    @Setter
    public static class PartnerClass{
        /**
         * 往来单位分类编码
         */
        @JsonProperty(value = "Code")
        private String code;

        /**
         * 往来单位分类名称
         */
        @JsonProperty(value = "Name")
        private String name;
    }

    /**
     * 联系方式信息
     */
    @JsonProperty(value = "PartnerAddresDTOs")
    private List<PartnerAddresDTOs> partnerAddresDTOs;

    @Getter
    @Setter
    public static class SettlementPartner{
        /**
         * 结算客户名称
         */
        @JsonProperty(value = "Name")
        private String name;
    }

    @Getter
    @Setter
    public static class PartnerAddresDTOs{
        /**
         * 联系人
         */
        @JsonProperty(value = "Contact")
        private String contact;

        /**
         * 手机号
         */
        @JsonProperty(value = "MobilePhone")
        private String mobilePhone;

        /**
         * 联系电话
         */
        @JsonProperty(value = "TelephoneNo")
        private String telephoneNo;

        /**
         * 电子邮箱地址
         */
        @JsonProperty(value = "EmailAddr")
        private String emailAddr;
    }



}
